perm filename PROJ.F70[206,LSP] blob sn#005327 filedate 1971-01-05 generic text, type T, neo UTF8
00100	                     COMPUTER SCIENCE DEPARTMENT
00200	                         STANFORD UNIVERSITY
00300	
00400	
00500	CS 206           COMPUTING WITH SYMBOLIC EXPRESSIONS        FALL 1970
00600	
00700	PROJECT TO FIND THE SUBGROUPS OF A PERMUTATION GROUP.
00800		
00900		Given a list u of permutations subgr [u] is a list of the
01000	subgroups of the permutation group generated by the permutations in u.
01100	Each of these subgroups is represented by a set of its generators.  
01200	(You may choose to list all the elements of the subgroup.)
01300		A preliminary function is clearly grp [u] that gives a list of
01400	the permutations generated by u.
01500		Example: Suppose u=(((1 2)(3 4))((1 3)(2 4))).
01600	Then
01700	grp [u]=(NIL ((1 2)(3 4))((1 3)(2 4))((1 4)(2 3)))
01800	and
01900	subgrp[u]=((NIL) (NIL ((1 2) (3 4)))
02000	(NIL ((1 3) (2 4)))
02100	(NIL ((1 4) (2 3)))
02200	(NIL ((1 2) (3 4)) ((1 3) (2 4)) ((1 4) (2 3))))
02300	
02400	For more substantial groups these lists will be quite
02500	lengthy.
02600		In class, we discussed a program to apply a permutation to a
02700	number, and we discussed informally the rules for multiplying two
02800	permutations.
02900	
03000	prot[u,v] is the first program you will have to write.  You will also have
03100	to make sure that permutations are written in the standard 
03200	order in which the cycle containing the smallest number is written first.
03300	with that number first in the cycle, etc.